package com.xinbochuang.machine.common.utils;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.util.Date;

/**
 * 二维码工具类
 *
 * @author 黄晓鹏
 * @date 2020-09-29 21:07
 */
public class QrCodeUtil {

    public static void main(String[] args) {
        System.out.println(currentNum("WG-20210611-019"));
    }

    /**
     * 根据code获取当前排序数字
     *
     * @param code 二维码code
     * @return 当前排序数字
     */
    public static int currentNum(String code) {
        if (StrUtil.isBlank(code)) {
            return 0;
        }
        String numStr = code.substring(code.lastIndexOf("-") + 1);
        return Integer.parseInt(numStr);
    }

    /**
     * 根据日期/数据库中的条数生成二维码字符串
     *
     * @param num 数据条数
     * @return 二维码字符串
     */
    public static String code(int num) {
        return "WG-" + DateUtil.format(new Date(), "yyyyMMdd") + "-" + NumUtil.getThreeNumber(num + 1);
    }

    /**
     * 根据二维码字符串生成base64二维码
     *
     * @param code 二维码字符串
     * @return 二维码
     */
    public static String qrCode(String code) {
        //生成二维码
        QrConfig config = new QrConfig(100, 100);
        //高纠错级别
        config.setErrorCorrection(ErrorCorrectionLevel.H);
        return cn.hutool.extra.qrcode.QrCodeUtil.generateAsBase64(code, config, "png");
    }
}
